#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//int main()
//{
//
//	char arr[20] = { 0 };
//	system("shutdown -s -t 600");
//	system("star cmd");
//again:
//	printf("请注意你的电脑在10分钟之后关机，请输入:我是猪,来取消关机\n");
//	scanf("%s", &arr);
//	if (strcmp(arr, "我是猪") == 0)
//	{
//		system("shutdown -a");
//		
//	}
//	else
//	{
//		goto again;
//	}
//
//	return 0;
//}

//当实参传递数据给形参时，如果之间没有实质的联系，那么形参只是一份拷贝，它有属于自已的空间
//形式参数的改变不会影响到实际参数
//void swap(int *px ,int *py)
//{
//	int z = 0;
//	z = *px;
//	*px = *py;
//	*py = z;
//
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a,&b);
//	printf("交换前a=%d b=%d\n",a,b);//实际参数,如果实际参数与形式参数之间没有传输联系
//	swap(&a, &b);
//	printf("交换后a=%d b=%d",a,b);
//	return 0;
//}
 
//写一个函数判断是不是素数
//打印100~200之间的数
//int main()
//{
//	int i = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		int j = 0;
//		int flag = 1;//强行创造一个判断条件,flag是1，表示是素数
//		for (j = 2; j <= i - 1; j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1)
//		{
//			printf("%d\n", i);
//		}
//	}
//
//	return 0;
//}
//写一个函数判断是不是闰年
//打印1000到2000年之间的函数
//能被4整除,且不能被100整除的就是闰年
//能被400整除的是闰年
//int main()
//{
//	int year = 0;
//	//int flag = 1;
//	for (year = 1000; year <= 2000; year++)
//	{
//		
//		if (year % 4 == 0)
//		{
//			if (year % 100 != 0)
//			{
//				printf("%d ", year);
//				
//			}
//		}
//		 if(year % 400 == 0)
//		{
//			printf("%d ", year);
//		}
//	
//		
//	}
//	return 0;
//}
//函数
//int is_leap_year(int a)
//{
//	if (((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0))
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int main()
//{
//	int year = 0;
//	for (year = 1000; year <= 2000; year++)
//	{
//		if(is_leap_year(year))
//		printf("%d ", year);
//
//	}
//	return 0;
//}
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 12;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int right = sz - 1;
	int left = 0;
	
	while (left<=right)
	{
		int middle = (left + right) / 2;
		if (arr[middle] < k)
		{
			 left = middle + 1;
		}
		else if (arr[middle] > k)
		{
			right = middle - 1;

		}
		else 
		{
			printf("找到了下标是=%d\n", middle);
			break;
	
		}
		
	}
	if (left > right)
	{
		printf("找不到");
	}

	
	return 0;
}

//链接访问的前提是函数一定要有返回类型,如果一个函数没有返回类型,那么它是无法实现的
//int main()
//{
//	printf("%d", printf("%d", printf("%d", 222)));//链式访问
//
//	return 0;
//}

//函数可以嵌套调用，但不能嵌套定义 
//int add(int x, int y)
//{
//	return x + y;
//	int sum(int x, int y)//错误的
//	{
//		return x = y;
//	}
//}
//
//int main()
//{
//	return 0;
//}

//函数调用
//void test()
//{
//	printf("haha\n");
//}
//void test1()
//{
//	int i = 0;
//	for (i = 0; i < 3; i++)
//	{
//		test();
//	}
//}
//
//
//int main()
//{
//	test1();
//	return 0;
//}
	
//1	